// 定义按钮连接的引脚
const int buttonPin = 2;
// 定义LED连接的引脚
const int ledPin = 13;
// 存储按钮上一次的状态
int lastButtonState = LOW;
// 存储LED的当前状态
int ledState = LOW;

void setup() {
  // 将按钮引脚设置为输入模式
  pinMode(buttonPin, INPUT);
  // 将LED引脚设置为输出模式
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // 读取按钮的当前状态
  int buttonState = digitalRead(buttonPin);

  // 检查按钮状态是否改变
  if (buttonState != lastButtonState) {
    // 按钮状态改变，等待20毫秒以消除抖动
    delay(20);
    // 再次读取按钮状态以确认
    buttonState = digitalRead(buttonPin);

    // 如果按钮被按下（高电平）
    if (buttonState == HIGH) {
      // 切换LED的状态
      if (ledState == LOW) {
        ledState = HIGH;
      } else {
        ledState = LOW;
      }
      // 设置LED的状态
      digitalWrite(ledPin, ledState);
    }
  }
  // 更新按钮的上一次状态
  lastButtonState = buttonState;
}